1. Field of the Invention
The present invention relates to a memory control apparatus and method for controlling access to storage regions configured by a non-volatile memory.
2. Description of the Related Art
In recent years, magnetoresistive random access memories (referred to as MRAM below) that use magnetic material have gained attention. An MRAM is a memory that stores information using magnetism, is non-volatile, and realizes high-speed access performance on par with that of a static RAM (referred to as SRAM below). In addition to being able to function in place of a conventional dynamic RAM (referred to as DRAM below) due to these characteristics, it can also configure a memory system that continues to maintain storage even if powered off, which cannot be realized with an SRAM or a DRAM. Also, since storage is a mechanism that is maintained by a magnetic effect, the circuitry does not become complicated as with an SRAM that uses flip flop circuits in a storage unit, and it is easy to increase its capacity.
A wireless apparatus proposed in Japanese Patent Laid-Open No. 2005-26912 (hereinafter referred to as Patent Document 1) is an example in which a main memory of an apparatus is configured using a non-volatile main memory. Patent Document 1 discloses that effects such as reducing power consumption by reducing the amount of non-volatile memory can be obtained by using an MRAM that maintains a storage state even when power is turned off as a main memory for an apparatus.
According to the configuration of Patent Document 1, since memory use is switched between two main memories configured by the MRAM, power saving can be achieved by powering off the main memory that is not in use. However, in Patent Document 1, there is no idea of achieving power saving by switching off a power supply to a portion of the storage regions (e.g., memory banks) in the main memory that is in use. In memory systems in general, the arrangement of data and programs in a memory region is complicated. For example, if a memory region is configured by multiple memory banks (also called “banks” below), it is also possible that programs and data are stored so as to span multiple banks. Also, there is a possibility that programs and data will both be included in one bank. In particular, if an interleaving method of memory access is employed in order to speed up readout and writing of data, the complexity increases. Accordingly, in these types of cases, it is extremely difficult to accurately determine which banks can be controlled so as to be powered on or off. Because of this, it has been difficult to realize power saving by performing powering on/off in units of banks.